package Lambda.Function;


import java.util.function.Function;

//Function函数式接口：用于转换数据的类型;
//Function<String,Integer> 将字符串类型转换为Integer类型;
public class FunctionDemo1 {
                /*  public interface Function<T, R> {//Function<T,R>参数是泛型，返回值也泛型
                     R apply(T t);*/
    public static int change(String s, Function<String,Integer> f1,Function<Integer,Integer> f2){

        return  f1.andThen(f2).apply(s);
        //先执行f1.apply,然后再执行f2.apply。
        //是f1是将String->Integer,f2是将Integer->Integer;

    }
    public static void main(String[] args) {
        //lambda表达式
      /*  String a="12";
        int number=change(a,(String s)->{
           return Integer.parseInt(s);
        },(Integer f)->{
            return f+100;
        });
        System.out.println(number);*/

        //优化后的代码:
        //lambda表达式优化：是可以将 参数类型，大括号，return 都删掉
        String a="12";
        int number=change(a,(s)-> Integer.parseInt(s)
        ,(f)-> f+100);
        System.out.println(number);

    }
}
